package com.example.glidepicasso;

import android.content.ContentValues;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.widget.Button;
import android.widget.ImageView;

import androidx.appcompat.app.AppCompatActivity;

import com.bumptech.glide.Glide;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class MainActivity extends AppCompatActivity {

    private ImageView imageView;
    private Button btnGlide, btnPicasso;

    String imageUrl = "https://web-renjiabao.oss-cn-beijing.aliyuncs.com/%E7%AC%AC%E4%B8%89%E6%96%B9%E6%A8%A1%E5%9D%97%E6%B5%8B%E8%AF%95.png";

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化视图组件
        imageView = findViewById(R.id.imageView);
        btnGlide = findViewById(R.id.btnGlide);
        btnPicasso = findViewById(R.id.btnPicasso);

        // Glide 加载图片
        btnGlide.setOnClickListener(v -> Glide.with(MainActivity.this)
                .load(imageUrl)
                .placeholder(R.drawable.loading)  // 占位图
                .error(R.drawable.error)  // 错误图
                .into(imageView));
                //加载到视图
                //.into(imageView));
     /*   RecyclerView 不同的item
        ViewPager2 和 Framgment的demo/view
        存储功能
                子线程通知主线程更新Ui

        这个错误信息表明你的应用在尝试通过网络加载图片时，遇到了权限问题，具体来说是缺少 INTERNET 权限，导致无法正常进行网络请求。

        解决方法：
        你需要在你的 Android 应用的 AndroidManifest.xml 文件中添加 INTERNET 权限声明，允许应用访问互联网。请确保你已经在 <manifest> 标签内的 <application> 标签之前加上了以下代码：

        xml
                复制
        编辑
                <uses-permission android:name="android.permission.INTERNET" />*/
        //Picasso 加载图片
/*        btnPicasso.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Picasso.get()
                        .load(imageUrl)
                        .placeholder(R.drawable.loading)  // 占位图
                        .error(R.drawable.error)  // 错误图
                        .into(imageView);
            }
        });*/


    }
    // 保存图片到 MediaStore
    private void saveImageToMediaStore(Bitmap bitmap) {
        ContentValues values = new ContentValues();
        values.put(MediaStore.Images.Media.TITLE, "My Image");
        values.put(MediaStore.Images.Media.DISPLAY_NAME, "image.jpg");
        values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");

        Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

        try (OutputStream stream = getContentResolver().openOutputStream(uri)) {
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 保存图片到文件存储
    private void saveImageToFile(Bitmap bitmap) {
        // 获取文件存储路径
        File directory = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "images");
        if (!directory.exists()) {
            directory.mkdirs();
        }

        File file = new File(directory, "image.jpg");
        try (FileOutputStream out = new FileOutputStream(file)) {
            bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); // 压缩并保存
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}